এই অধ্যায় শেষে আপনি সি প্রোগ্রামিং এ সুইচ(switch) স্টেটমেন্ট লেখা শিখবেন।
নেস্টেড if...else
স্টেটমেন্ট ব্যবহার করে আপনি অনেক ভ্যালুর বিপরীতে কোনো একটি নির্দিষ্ট কোড ব্লককে এক্সিকিউট(execute) করতে পারেন। কিন্তু আপনি যদি সিঙ্গেল ভ্যারিয়েবলের ভ্যালু চেক করাতে চান তাহলে nested if...else স্টেটমেন্টের পরিবর্তে switch
স্টেটমেন্ট ব্যবহার করাই উত্তম হবে।
switch স্টেটমেন্ট প্রায়ই নেস্টেট if...else
স্টেটমেন্টের চেয়ে দ্রুততর এবং সুইস স্টেটমেন্টের সিনট্যাক্সও তুলনামূলক সহজ ও স্বচ্ছ।
switch (expression)
{
case value1:
//expression এর ভ্যালু value1 এর সমান হলে এই কোড এক্সিকিউট হবে;
break;
case value2:
//expression এর ভ্যালু value2 এর সমান হলে এই কোড এক্সিকিউট হবে;
break;
.
.
.
default:
//expression এর ভ্যালু কোনো value এর সমান না হলে এই কোড এক্সিকিউট হবে;
}
- উপরের সিনট্যাক্সে expression প্রোগ্রামে শুধুমাত্র একবার এক্সিকিউশন(execution) হয়।
- এক্সপ্রেশনের ভ্যালু সুইস ব্লকের যেই case value এর সাথে মিলে যায় প্রোগ্রাম কন্ট্রোল তার কাছে চলে আসে ফলে সেই case value এর কোড ব্লকটি সম্পাদিত(execution) হয়।
- উপরের সিউডোকোড(pseudocode) এ expression এর ভ্যালু যদি value2 এর সমান হয় তাহলে কম্পাইলার case value2 এর কোড ব্লককে এক্সিকিউট করবে।
- case value2 এর পরে কোনো break স্টেটমেন্ট না থাকলে সুইস ব্লকের শেষ পর্যন্ত এক্সিকিউশন হবে।
- এক্সপ্রেশনের ভ্যালু সুইস ব্লকের কোনো case value এর সাথে না মিললে default এর কোড ব্লকটি সম্পাদিত হবে।
- পরবর্তী case কে এক্সিকিউট থেকে বাধা দিতে break স্টেটমেন্ট ব্যবহার করা হয়।
kt_satt_skill_example_id=230
উপরের প্রোগ্রামে ইউজার 4 ইনপুট দেওয়ায় এক্সপ্রেশনের ভ্যালু case 4 : এর সাথে মিলে গেছে এবং Tuesday প্রিন্ট হয়েছে।
kt_satt_skill_example_id=232
ইউজার - অপারেটর ইনপুট দেওয়ায় ইহা oparetor ভ্যারিয়েবলে জমা হয়েছে। এবং দুটি অপারেন্ড 32.5 এবং 12.4 ইনপুট দেওয়ায় এগুলো যথাক্রমে firstNumber এবং secondNumber ভ্যারিয়েবলে জমা হয়েছে।
তারপরে প্রোগ্রামের কন্ট্রোল নিচের ব্লকে জাম্প করে।
printf("%.1lf - %.1lf = %.1lf",firstNumber, secondNumber, firstNumber-firstNumber);
অবশেষে break statement সুইস স্টেটমেন্টের সমাপ্তি ঘটায়।
যদি break স্টেটমেন্ট ব্যবহার করা না হত তাহলে সঠিক case এর পরবর্তী সকল case এক্সিকিউট(execute) হত।
common.read_more